package com.leadership.api.service;

import java.util.List;
import com.leadership.training.entity.project.TrainingSurveyResult;
import com.leadership.training.entity.report.TrainerCourseReport;

/**
 * 
 * @author Rockett
 *
 */
public interface TrainingSurveyResultService extends DataService<TrainingSurveyResult>{
	
	/**
	 * get survey result with trainee Id and project phase id
	 * @param traineeId
	 * @param projectPhaseId
	 * @return
	 */
	public List<TrainingSurveyResult> listByTraineeAndProjectPhase(Long traineeId,Long projectPhaseId);
	/**
	 * get survey result with trainee Id and project phase id and project phase course id
	 * @param traineeId
	 * @param projectPhaseId
	 * @return
	 */
	public List<TrainingSurveyResult> listByTraineeAndProjectPhaseAndCourse(Long traineeId,Long projectPhaseId,Long projectPhaseCourseId);

	/**
	 * get survey result for project phase
	 * @param projectPhaseId
	 * @return
	 */
	public List<TrainingSurveyResult> listByProjectPhase(Long projectPhaseId);

	/**
	 * get survey result for course/trainer
	 * @param courseId
	 * @return
	 */
	public List<TrainingSurveyResult> listByCourse(Long courseId);
	/**
	 * get survey result for project phase course
	 * @param courseId
	 * @return
	 */
	public List<TrainingSurveyResult> listByProjectPhaseCourse(Long projectPhaseCourseId);
	/**
	 * get survey result count by project
	 * @param projectId
	 * @return
	 */
	public int countByProject(Long projectId);
	/**
	 * get survey result for trainer
	 * @param trainerId
	 * @return
	 */
	public Double avgByTrainer(Long trainerId);

	/**
	 * listScoreResultByTrainer
	 * @param trainerId
	 * @return
	 */
	public List<TrainingSurveyResult>  listScoreByTrainer(Long trainerId);


	/**
	* @description
	* @params * @param trainerCourseReportList
	* @return  void
	* @author  LZJ
	* @date  2019/12/13 12:56 *
	*/
    public void resultDataUpdate(List<TrainerCourseReport> trainerCourseReportList);
}
